There are two main types of applications available today. A first type of application is a client-side application. The client-side application resides on a client computer and is available for use whenever the client computer is operational. This client-side application undergoes a distinct installation state before it is available for use. Typically, the installation state displays some form of a progress user-interface, such as a thermometer, during installation. During the installation state, the client-side application is not available for use. The client-side application must be fully installed before a user can use the application.
The other type of application is commonly referred to as a Web application or Web app. The Web app is stored on a Web server. The Web app is commonly deployed as multiple Web pages accessible over the Internet. A conventional Web app includes multiple Web pages representing markup-based documents. The Web app may also include scripts or other resources that are accessed through the Web pages. For most Web apps, the multiple Web pages and resources are hyperlinked together in such a way that the “business logic” of the Web app is distributed over the multiple resources. Each page is responsible for a portion of the overall business logic, and, by navigating from page to page, the user can experience the entire Web app. For the purpose of this document, the term “navigating” refers to causing a hosting environment to retrieve a resource associated with the Web app, such as by activating a hyperlink. Navigating to a resource typically involves navigating away from another resource where the navigated-to resource is the one being retrieved by the hosting environment. Web apps do not require an installation phase and are not available once the client computer is disconnected from the Web server.
Both of these methods for interacting with a software application have advantages and disadvantages, neither one is ideal.